package com.station.Activitys.activity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageView;
import android.widget.TextView;

import com.station.Activitys.R;
import com.station.Activitys.activity.base.BaseActivity;
import com.station.Activitys.utils.Constant;
import com.zhy.autolayout.AutoRelativeLayout;

import butterknife.Bind;
import ezy.ui.layout.LoadingLayout;

/**
 * 项目名称：基站管理平台 手机app
 * 类描述：所有的 web 数据查看页面
 * 创建人：张飞祥
 * 创建时间：2018/7/21 14:29
 * 修改人：张飞祥
 * 修改时间：2018/7/21 14:29
 * 修改备注：
 */
public class WebDateActivity extends BaseActivity {

    //返回按钮
    @Bind(R.id.iv_return)
    ImageView ivReturn;
    //标题
    @Bind(R.id.tv_title)
    TextView tvTitle;
    //标题总布局
    @Bind(R.id.layout_app_bar)
    AutoRelativeLayout layoutAppBar;

    //webView
    @Bind(R.id.wv_web_date)
    WebView wvWebDate;
    @Bind(R.id.web_loading)
    LoadingLayout webLoading;

    //标题
    public String mTitle = "";
    //url
    public String mUrl = "";


    @Override
    protected void initUI() {
        setContentView(R.layout.act_web_date);
        //TODO 获取数据
        // 获取传递过来的封了数据的Bundle
        Bundle bundle = this.getIntent().getExtras();
        // 获取标题
        mTitle = bundle.getString(Constant.WEB_TITLE);
        // 获取请求地址
        mUrl = bundle.getString(Constant.WEB_URL);
    }

    @Override
    protected void initData() {

        /**
         * 判断 传递过来 是否有标题
         */
        if (mTitle != null && !mTitle.trim().equals("")) {
            //标题
            tvTitle.setText(mTitle);
            //显示返回按钮
            ivReturn.setVisibility(View.VISIBLE);
            //返回按钮监听
            ivReturn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    finish();
                }
            });
        } else {
            //隐藏标题栏
            layoutAppBar.setVisibility(View.GONE);
        }

        //初始化 WebView
        iniWeb();
        //加载数据
        wvWebDate.loadUrl(mUrl);
    }

    /**
     * 初始化 webView 设置
     */
    private void iniWeb() {
        //声明WebSettings子类
        final WebSettings webSettings = wvWebDate.getSettings();

        //如果访问的页面中要与Javascript交互，则webview必须设置支持Javascript
        webSettings.setJavaScriptEnabled(true);

        //设置自适应屏幕，两者合用
        webSettings.setUseWideViewPort(true);                           //将图片调整到适合webview的大小
        webSettings.setLoadWithOverviewMode(true);                      // 缩放至屏幕的大小

        //缩放操作
        webSettings.setSupportZoom(true);                               //支持缩放，默认为true。是下面那个的前提。
        webSettings.setBuiltInZoomControls(true);                       //设置内置的缩放控件。若为false，则该WebView不可缩放
        webSettings.setDisplayZoomControls(false);                      //隐藏原生的缩放控件

        //其他细节操作
        webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);  //关闭webview中缓存
        webSettings.setAllowFileAccess(true);                           //设置可以访问文件
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);     //支持通过JS打开新窗口
        webSettings.setLoadsImagesAutomatically(true);                  //支持自动加载图片
        webSettings.setDefaultTextEncodingName("utf-8");                //设置编码格式

        //复写shouldOverrideUrlLoading()方法，使得打开网页时不调用系统浏览器， 而是在本WebView中显示
        wvWebDate.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                try {
                    if (url.startsWith("tel:")) {
                        Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url));
                        startActivity(intent);
                        return true;
                    }
                } catch (Exception e) {
                    return false;
                }
                view.loadUrl(url);
                return true;
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                //TODO View 非空判断
                if (webLoading != null) {
                    webLoading.showContent();
                }
            }
        });
    }
}
